package cn.itcast.listener;


import cn.itcast.domain.system.User;
import cn.itcast.utils.MailUtil;
import com.fasterxml.jackson.databind.ObjectMapper;
import org.springframework.amqp.core.Message;
import org.springframework.amqp.core.MessageListener;

import java.io.IOException;

/*
   消息的监听器：自定义一个类实现MessageListener
   消息监听器的作用：一直监听队列，只有队列有消息马上去消费
 */
public class EmailListener implements MessageListener {

    //由于队列中的数据都是json数据，所以我们只要使用ObjectMapper对象把json转换为java对象

    private ObjectMapper objectMapper = new ObjectMapper();

    @Override
    public void onMessage(Message message) {
        //获取消息
        byte[] body = message.getBody();
        //使用objectmapper将读取到的数据转换为指定的java对象
        try {
            User user = objectMapper.readValue(body, User.class);
            try {
                MailUtil.sendMsg(user.getEmail(),"欢迎"+user.getUserName()+"加入百万数据有限公司","年薪百万");
                System.out.println("发送邮件完毕");
            } catch (Exception e) {
                e.printStackTrace();
            }
        } catch (IOException e) {
            e.printStackTrace();
        }

    }
}
